home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 / Ham Radio 2000.iso / ham2000 / misc / dspice0s / limvds.c < prev    next >
C/C++ Source or Header  |  1992-11-21  |  1KB  |  61 lines

  1. /* limvds.f -- translated by f2c (version of 3 February 1990  3:36:42).
  2.    You must link the resulting object file with the libraries:
  3.     -lF77 -lI77 -lm -lc   (in that order)
  4. */
  5.  
  6. #include "f2c.h"
  7.  
  8. /*<       subroutine limvds(vnew,vold) >*/
  9. /* Subroutine */ int limvds_(vnew, vold)
  10. doublereal *vnew, *vold;
  11. {
  12.     /* System generated locals */
  13.     doublereal d_1, d_2;
  14.  
  15. /*<       implicit double precision (a-h,o-z) >*/
  16.  
  17. /*     this routine limits the per-iteration change of fet vds. */
  18.  
  19. /*<       if (vold.lt.3.5d0) go to 200 >*/
  20.     if (*vold < 3.5) {
  21.     goto L200;
  22.     }
  23.  
  24. /*<       if (vnew.le.vold) go to 100 >*/
  25.     if (*vnew <= *vold) {
  26.     goto L100;
  27.     }
  28. /*<       vnew=dmin1(vnew,3.0d0*vold+2.0d0) >*/
  29. /* Computing MAX */
  30.     d_1 = *vnew, d_2 = *vold * 3. + 2.;
  31.     *vnew = min(d_2,d_1);
  32. /*<       go to 500 >*/
  33.     goto L500;
  34. /*<   100 if (vnew.lt.3.5d0) vnew=dmax1(vnew,2.0d0) >*/
  35. L100:
  36.     if (*vnew < 3.5) {
  37.     *vnew = max(*vnew,2.);
  38.     }
  39. /*<       go to 500 >*/
  40.     goto L500;
  41.  
  42. /*<   200 if (vnew.le.vold) go to 300 >*/
  43. L200:
  44.     if (*vnew <= *vold) {
  45.     goto L300;
  46.     }
  47. /*<       vnew=dmin1(vnew,4.0d0) >*/
  48.     *vnew = min(*vnew,4.);
  49. /*<       go to 500 >*/
  50.     goto L500;
  51. /*<   300 vnew=dmax1(vnew,-0.5d0) >*/
  52. L300:
  53.     *vnew = max(*vnew,-.5);
  54.  
  55. /*<   500 return >*/
  56. L500:
  57.     return 0;
  58. /*<       end >*/
  59. } /* limvds_ */
  60.  
  61.